home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
TPUG - Toronto PET Users Group
/
TPUG Users Group CD
/
TPUG Users Group CD.iso
/
C64
/
R-Shows
/
(c)expo87.d64
/
ponzo tutor-1.64
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
2007-02-04
|
18KB
|
568 lines
0 RUN00100
1 REM"
2 [143]"PONZO*1983*WATERLOO
3 REM"
100 [151]53281,15:[151]53280,12:[153]"STOP":[153]"LOAD C64 TUTOR-1
101 PRINT"[176][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][174]"
102 PRINT"[221] C64 BASICS [146] [221]":MS$=" WELCOME! "
103 PRINT"[173][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][189][144]"
104 SN$="1000":GOSUB63200:GOSUB63600
105 GOSUB60000:GOSUB63100:GOSUB59000
1000 GOSUB60000
1005 PRINT"[147]HI[146]! LET ME TELL YOU ABOUT MYSELF."
1010 PRINT"I'M A CLASSY CALCULATOR:"
1040 PRINT"I CAN ADD: 2+2=4[146] SUBTRACT:2-3=-1"
1050 PRINT"MULTIPLY:3*17=51[146] DIVIDE:4/16=.25"
1080 PRINT"I COMPUTE SINES AND LOGARITHMS"
1090 PRINT"SQUARE ROOTS AND ARCTANGENTS."
1100 PRINT"I RAISE NO'S TO A POWER:2^(-3)=.125"
1200 PRINT"TYPE:?2*SIN([255]/3)+LOG(1.2^3)-SQR(4*5.6)"
1300 PRINT"(THE ? IN FRONT MEANS PRINT)"
1310 PRINT" [163] [163][163][163][163][163]"
1320 PRINT"..HIT RETURN[146]..I PRINT THE ANSWER!"
1330 PRINT"TRY IT[146]. WHEN FINISHED.."
1331 PRINT"TYPE @[146]_[192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192][192]"
1332 MS$="@_REMEMBER[146]":GOSUB63100
1335 SN$="02000":GOTO63300
2000 PRINT"[147]":MS$=" GOOD":GOSUB60000:GOSUB63100:PRINT"[147]";
2100 PRINT"[147]TO CORRECT A MISTYPED SYMBOL "
2110 PRINT"JUST PRESS THE KEY MARKED DEL[146].
2150 [153]" TAB(TAB(TAB("
2170 [153]"SUPPOSE YOU TYPED 2SIN((null)/3)."
2200 [153]"TO INSERT A * BETWEEN 2 AND SIN((null)/3)"
2210 [153]"TO INDICATE MULTIPLY....
2300 PRINT"PRESS SHIFT AND DEL!"
2400 PRINT" [163][163][163][163][163] [183][183][183] [163][163][163]
2500 [153]"DO THIS AFTER YOU HAVE THE CURSOR"
2510 [153]"OVER THE S IN SIN."
2600 [153]"THAT WAY YOU INSERT A SPACE"
2610 [153]"TO TYPE IN '*'."
2800 [153]"TRY IT! THEN TYPE @"
2990 SN$[178]"03000":[137]63300
3000 [141]60000:[153]"LOADIF YOU WANT ME TO REMEMBER THE"
3010 [153]"RESULT OF SOME CALCULATION.."
3020 [153]"THEN GIVE IT A NAME!"
3030 [153]"TYPE:SAM=2*3/4+5WAIT"
3040 [153]"THEN I'LL REMEMBER SAM."
3050 [153]"YOU CAN ASK FOR THE VALUE OF SAM."
3070 [153]"TYPE:?SAM"
3080 [153]"YOU CAN ALSO TYPE:"
3090 [153]"JOE=SAM^2+SIN((null)*SAM/3)"
3100 [153]"?JOE "
3110 [153]"THEN I'LL PRINT THE VALUE OF JOE."
3120 [153]"TRY IT!THEN TYPE.. @"
3130 SN$[178]"04000":[137]63300
4000 [141]60000:[153]"LOADOK..IF YOU TELL ME THE VALUES"
4100 [153]"OF A,B & C THEN TYPE:"
4200 [153]"Y=(-B+SQR(B*B-4*A*C))/(2*A)"
4300 [153]"?Y "
4400 [153]"I'LL CALCULATE Y AND PRINT IT."
4500 [153]"UNFORTUNATELY, IF YOU GIVE ME"
4510 [153]"NEW VALUES FOR A,B & C...WELL.."
4600 [153]"YOU'LL HAVE TO RETYPE THE FORMULA!"
4800 [153]"(BUT WAIT TILL WE WRITE 'PROGRAMS')."
4910 [153]"WANT TO TRY THIS?"
4950 [153]"THEN:TYPE @WAIT TO CONTINUE."
4955 MS$[178]"@_TANTANTANTANTANTANTANTAN":[141]63100
4970 SN$[178]"05000":[137]63300
5000 [141]60000:[153]"LOADIF YOU GIVE ME NEW VALUES FOR A,B &C"
5300 [153]"BY TYPING A=5.3:B=-2.1:C=.011"
5400 [153]"(YOU CAN GIVE ME SEVERAL INSTR'NS"
5500 [153]"ON THE SAME LINE,SEPARATED BY A COLON:)"
5700 [153]"I'LL REMEMBER THESE NEW VALUES"
5710 [153]"AND IF YOU WANT Y RECALCULATED"
5800 [153]"JUST MOVE THE CURSOR TO THE"
5810 [153]"STATEMENT DEFINING Y AND HIT 'RETURN'."
5840 [153]"I'LL THINK YOU JUST TYPED IT IN!"
5850 [153]"THEN YOU CAN ASK ?Y"
5860 [153]"TRY IT! THEN TYPE @"
5999 SN$[178]"06000":[137]63300
6000 [141]60000:[153]"LOADNOW ...MY MORE IMPRESSIVE TALENT.."
6005 [153]" PROGRAMSWAIT"
6010 [153]" FREFREFREFREFREFREFREFRE"
6011 MS$[178]" AHEM...":[141]63100
6015 [141]63000
6020 [153]"LOADIF YOU GIVE EACH INSTRUCTION A 'NUMBER'"
6030 [153]"I'LL REMEMBER THE INSTRUCTION!"
6040 [153]"FOR EXAMPLE, TYPE:"
6050 [153]"10 Y=(A+B)/2"
6060 [153]"20 ?Y "
6080 [153]"#10 SAYS:COMPUTE THE AVERAGE OF"
6085 [153]"TWO NUMBERS A & B, AND CALL IT Y."
6100 [153]"#20 SAYS:PRINT THE VALUE OF Y."
6120 [153]"NOW I'LL 'REMEMBER' THESE INSTRUCTIONS!"
6130 [153]"CLEAR THE SCREEN,TYPE A=1.5:B=-4"
6140 [153]"THEN GOTO 10WAIT...I'LL OBEY!"
6150 [153]"TRY IT! THEN TYPE @"
6160 MS$[178]" GOTO 10":[141]63100
6170 SN$[178]"07000":[137]63300
7000 [141]60000:[153]"LOADSUPPOSE YOU WANT THE VALUE OF Y"
7010 [153]"PRINTED IN THE MIDDLE OF THE SCREEN."
7047 [153]"TYPE:"
7050 [153]"15?"
7060 [153]"16?SPC("W2$");"
7070 [153]"#15 SAYS:PRINT NOTHING..A BLANK LINE."
7090 [153]"#16 SAYS:SPACE RIGHT "W2$" PLACES."
7100 [153]">THE SEMI-COLON AFTER SPC("W2$")"
7110 [153]"SAYS:LEAVE THE CURSOR THERE!"
7120 [153]"YOU SEE,I NORMALLY RETURN THE CURSOR"
7125 [153]"TO THE LEFT MARGIN.."
7130 [153]"UNLESS YOU INCLUDE THE ;"
7140 [141]63000
7145 [153]"LOADTYPE STATEMENTS IN ANYCMDCMDCMDFREFREFREON ORDER."
7146 [153]"I'LL REMEMBER THEM IN THE ORDER"
7147 [153]"OF THEIR STATEMENT #'S! YOU TYPE:"
7160 [153]"10Y=(A+B)/2"
7161 [153]"20?Y "
7162 [153]"15? "
7163 [153]"16?SPC("W2$");"
7170 [153]"I REMEMBER THEM AS:"
7171 [153]" 10 Y=(A+B)/2"
7172 [153]" 15 PRINT"
7173 [153]" 16 PRINTSPC("W2$");"
7174 [153]" 20 PRINTY"
7180 [153]"TRY IT!..THEN TYPE @WAIT TO GO ON."
7260 SN$[178]"08000":[137]63300
8000 [141]60000
8010 [153]"LOAD 10 Y=(A+B)/2 SPC("
8020 [153]" 15 PRINT SPC(THE PROGRAM"
8030 [153]" 16 PRINTSPC("W2$"); SPC(SO FAR"
8040 [153]" 20 PRINTY SPC("
8060 [153]"TO CONVINCE YOURSELF THAT I HAVE"
8070 [153]"ALL YOUR INSTRUCTIONS,IN ORDER.."
8090 [153]"JUST TYPE:LIST10-20"
8110 [153]"I'LL PRINT EVERY STATEMENT :10 TO 20."
8120 [153]"YOU CAN EDIT STATEMENTS RIGHT"
8125 [153]"ON THE SCREEN. JUST LISTWAIT ..THEN MOVE"
8140 [153]"THE CURSOR..THEN INST/DELWAIT ETC."
8150 [153]"TO CHECK THE CHANGES, LISTWAIT AGAIN.
8155 PRINT"WANT TO TRY? (CONTINUE WITH @[146])"
8160 SN$="09000":GOTO63300
9000 GOSUB60000:MS$="SOME NOTES[146]":GOSUB63100
9010 PRINT"[147]TO CHANGE[146] A STATEMENT"
9020 PRINT"TYPE THE NO. AND THE NEW INSTRUCTION."
9030 PRINT"(I'LL FORGET THE OLD INSTRUCTION)."
9040 PRINT"TO DELETE[146] A STATEMENT"
9050 PRINT"TYPE THE NO. THEN PRESS 'RETURN'!"
9090 PRINT"WHICH REMINDS ME.."
9100 PRINT"DO NOT[146] TYPE IN SOME NUMBER.."
9110 PRINT"CHANGE YOUR MIND...HIT RETURN.."
9120 PRINT"..THEN REENTER THE NUMBER."
9130 PRINT"YOU MAY HAVE WIPED OUT A STATEMENT!"
9140 PRINT"NOTE,TOO,THAT YOU MAY USE ?"
9145 PRINT"I WILL REMEMBER IT AS PRINT[146]."
9160 GOSUB63000
9161 PRINT"[147]ALSO..I REMEMBER ONLY THE FIRST TWO"
9162 PRINT"CHARACTERS IN ANY NAME[146] YOU ASSIGN."
9163 PRINT"SAM=10"
9164 PRINT"SALLY=20"
9165 PRINT"TO ME, BOTH[146] HAVE THE SAME NAME!"
9166 PRINT"NAMELY SA[146]!"
9167 PRINT"HENCE SA=10 FOLLOWED BY SA=20 MAKES"
9168 PRINT"SAM=SALLY=20."
9169 MS$="SAM=SALLY?":GOSUB63100
9170 GOSUB63000
10000 :
10009 PRINT"[147] IN ADDITION TO MANIPULATING NUMBERS"
10010 PRINT"I CAN MANIPULATE STRINGS[146] OF SYMBOLS."
10020 PRINT"IN THE SAME WAY THAT YOU ASSIGN A NAME"
10030 PRINT"TO A NUMBER,LIKE X OR Y OR SAM,"
10040 PRINT"YOU CAN GIVE A NAME TO A STRING"
10050 PRINT"OF CHARACTERS."
10060 PRINT"SO THAT I DON'T BECOME CONFUSED"
10070 PRINT"I MUST KNOW WHETHER 2*3 IS A NUMBER"
10080 PRINT"OR A STRING OF THREE SYMBOLS."
10090 PRINT"HENCE, I MUST INSIST THAT THE NAME YOU"
10100 PRINT"GIVE IT ENDS WITH A $ ..IF IT'S A"
10110 PRINT"STRING OF SYMBOLS..LIKE X$,Y$ OR SAM$."
10115 GOSUB63000
10120 PRINT"[147] YOU CAN NOW TRY THE FOLLOWING:"
10130 PRINT"TYPE:"
10140 PRINT"X=2+3"
10150 PRINT"X$="CHR$(34)"2+3"CHR$(34)
10160 PRINT"?X"
10170 PRINT"?X$"
10180 PRINT"..SEE WHAT I'LL PRINT[146]?"
10195 PRINT"THEN TYPE @[146] TO CONTINUE.":MS$=" ???? ":GOSUB63100
10200 SN$="11000":GOTO63300
11000 GOSUB60000
11010 PRINT"YOU GUESSED IT!"
11020 PRINT"I'LL PRINT:"
11030 PRINT:PRINT" 5"
11040 PRINT"2+3":PRINT
11045 GOSUB63000
11050 PRINT"[147] NOW WHAT DO YOU THINK X$+Y$ MEANS?"
11060 PRINT"TRY TYPING:":PRINT
11070 PRINT"A$="CHR$(34)"I"CHR$(34)
11080 PRINT"B$="CHR$(34)"YOU"CHR$(34)
11090 PRINT"Y$="CHR$(34)"AM GREAT!"CHR$(34)
11100 PRINT"Z$="CHR$(34)"ARE TOO?"CHR$(34)
11110 PRINT"THEN ASK ME:"
11120 PRINT"?A$+Y$"
11130 PRINT"?B$+Z$"
11140 PRINT"TRY IT! THEN TYPE @"
11145 MS$=" GREAT? ":GOSUB63100
11150 SN$="12000":GOTO63300
12000 GOSUB60000:PRINT"[147]WELL..IF YOU TRIED IT YOU'LL NOTICE""
12010 [153]"THAT A$ STANDS FOR EVERYTHINGWAIT INSIDE"
12020 [153]"THE QUOTES. IF YOU WANT A SPACE"
12030 [153]"AFTER I..THEN INCLUDE THE SPACE TOO!"
12040 [153]" TAB("
12045 [153]"A$="[199](34)"I "[199](34)
12046 [153]" ^"
12047 [153]" SEE?"
12048 [141]63000
12050 [153]"LOADOK..LET'S WORK ALL THIS INTO A PROGRAM."
12060 [153]"LET'S TYPE:"
12070 [153]"10?"[199](34)"CALCULATION OF THE HYPOTENUSE"[199](34)
12080 [153]"20?"[199](34)"ENTER SIDE A"[199](34)
12090 [153]"30 INPUT A"
12100 [153]"40?"[199](34)"ENTER SIDE B"[199](34)
12110 [153]"50 INPUT B"
12120 [153]"60 C=SQR(A*A+B*B):?"[199](34)"HYP="[199](34)"C"
12130 [153]"70 GO TO 20"
12140 [153]"THE ONLY THING NEW IS INPUTWAIT."
12170 [153]"AT STATEMENT#30 I'LL WAIT FOR YOU"
12180 [153]"TO TYPE IN A NUMBER, AND I'LL CALL"
12190 [153]"THE NUMBER A,IF YOU SAY INPUTAWAIT."
12300 [153]"TRY IT!(THEN TYPE @WAIT)"
12305 MS$[178]"HYPO/WHAT?":[141]63100
12310 SN$[178]"13000":[137]63300
13000 [141]60000:[153]"LOADSUPPOSE YOU WANT THE SQUARES"
13010 [153]"OF THE INTEGERS FROM 1 TO 100."
13020 [153]"YOU COULD TYPE:"
13030 [153]"10 ?1*1"
13040 [153]"20 ?2*2WAIT ETC.ETC."
13060 [153]"OR,YOU COULD REPEAT THE INSTRUCTION:"
13070 [153]"10 ?N*NWAIT"
13080 [153]"AGAIN & AGAIN,FOR N=1 THEN N=2..ETC."
13090 [153]"TO DO THIS YOU PUT THE INSTRUCTION TO "
13100 [153]"BE REPEATED WITHIN A FOR-NEXTWAIT LOOP:"
13120 [153]"10 FOR N=1 TO 100WAIT _HERE'S THE "[199](34)"FOR"[199](34)
13130 [153]"20 ?N*N "
13140 [153]"30 NEXT WAIT _HERE'S THE "[199](34)"NEXT"[199](34)
13150 [141]63000:[153]"LOAD"
13160 MS$[178]" WATCH!! ":[141]63100
14000 [141]60000:[153]"LOADHOW'S THIS FOR A DIVERSION?"
14010 [129]T[178]1[164]500:[130]:[153]"LOAD"
14020 [129]I[178]1[164]2
14030 [129]J[178]1[164]WD[171]1:[129]T[178]1[164]5:[130]
14040 [153]" *CMD";:[130]
14050 [129]J[178]1[164]WD[171]1:[129]T[178]1[164]5:[130]
14060 [153]" CMDCMD*CMD";:[130]
14070 [129]J[178]1[164]WD:[129]T[178]1[164]5:[130]
14080 [153]"*";:[130]:[130]
14090 [141]63000
14100 [153]"LOAD":MS$[178]" NICE !WAIT ":[141]60000:[141]63100:[153]"LOAD";
14150 [153]"LET'S TRY IT!"
14160 [153]"THERE WILL BE 4 FOR-NEXTWAIT LOOPS."
14170 [153]"1WAIT:"W3$" MOVEMENTS TO THE RIGHT."
14180 [153]"2WAIT:"W3$" TO THE LEFT.."
14190 [153]"(EACH OF THE ABOVE WILL PRINT A NEW *"
14200 [153]"AND ERASE THE OLD *..GIVING THE
14210 PRINT"APPEARANCE OF MOTION)."
14220 PRINT"3[146]:THEN, RIGHT AGAIN (BUT WITHOUT"
14221 PRINT"ERASING) LEAVING THE *'S."
14230 PRINT"4[146]:THEN[157][157][157][157][184][184][184][184][145] ALL 3 LOOPS WILL BE REPEATED"
14231 PRINT"2 TIMES,FOR 2 LINES!"
14245 GOSUB63000
14250 PRINT"[147]HERE WE GO!"
14260 FORI=1TO500:NEXT
14280 PRINT"[147]ASSUME THE CURSOR IS 'OVER' A *."
14290 PRINT"TO ERASE WE TYPE 'SPACE'.."
14300 PRINT"THEN *,THEN A 'CURSOR-LEFT'"
14320 PRINT"(LEAVING THE CURSOR AGAIN 'OVER' *[146])."
14350 PRINT"10?"CHR$(34)" *[157]"CHR$(34)
14360 PRINT" ^"
14365 PRINT" THIS IS CURSOR-LEFT[146]!"
14390 PRINT"REPEAT THESE INST'NS "W3$" TIMES"
14400 PRINT"WITH A FOR-NEXT"
14410 PRINT"LIKE SO:":PRINT
14420 PRINT"9 FOR I=1 TO "W3$
14430 PRINT"10?"CHR$(34)" *[157]"CHR$(34)
14440 PRINT"11 NEXT";
14450 GOSUB63000
14451 PRINT"[147]9 FOR I=1 TO "W3$" [166]"
14452 PRINT"10?"CHR$(34)" *[157]"CHR$(34)" [166] WE HAVE THIS SO FAR"
14453 PRINT"11 NEXT [166]"
14470 PRINT"NOW YOU'D TYPE:"
14480 PRINT"19 FOR I=1 TO"W3$
14490 PRINT"20?"CHR$(34)" [157][157]*[157]"CHR$(34)
14500 PRINT"21 NEXT"
14520 PRINT"NOTE THE SEQUENCE OF PRINT INST'NS:"
14530 PRINT"SPACE[146]-C'SORLEFT[146]-C'SORLEFT[146]-*[146]-C'SORLEFT[146]"
14540 PRINT"NOW WE HAVE * MOVING TO THE RIGHT,"
14550 PRINT"AND[157][157][157][184][184][184][145] TO THE LEFT,"
14560 PRINT"NOW:"
14570 PRINT"29FORI=1TO"W1$
14580 PRINT"30?"CHR$(34)"*"CHR$(34)
14590 PRINT"31NEXT"
14600 GOSUB63000
14610 PRINT"[147]NOTE THAT YOU NEEDN'T LEAVE ALL THOSE"
14620 PRINT"BLANK SPACES IN THE INST'NS."
14630 PRINT"(ME SMART FELLOW!)"
14640 PRINT"ANYWAY..THE LAST FOR-NEXT LOOP"
14650 PRINT"REPEATS ALL THE ABOVE TWICE!"
14660 PRINT" [163][163][163] "
14670 PRINT"SO YOU'D TYPE:"
14680 PRINT"5FORJ=1TO2 _FIRST STATEMENT"
14690 PRINT"40NEXT _LAST STATEMENT"
14700 GOSUB63000
14800 PRINT"[147]NOW OUR PROGRAM(PROGRAMME?)LIST[146]S LIKE:"
14810 PRINT" 5 FORJ=1TO2"
14820 PRINT" 9 FORI=1TO"W3$
14830 PRINT" 10 PRINT"CHR$(34)" *[157]"CHR$(34)
14840 PRINT" 11 NEXT"
14850 PRINT" 19 FORI=1TO"W3$
14860 PRINT" 20 PRINT"CHR$(34)" [157][157]*[157]"CHR$(34)
14870 PRINT" 21 NEXT"
14880 PRINT" 29 FORI=1TO"W1$
14890 PRINT" 30 PRINT"CHR$(34)"*"CHR$(34)
14900 PRINT" 40 NEXT"
14901 PRINT" 40 NEXT"
14920 PRINT"NOTE THAT WE USE "CHR$(34)"J"CHR$(34)
14930 PRINT"FOR THE LOOP THAT REPEATS FOR 2 LINES."
14940 PRINT"(THAT IS, THE OUTERMOST LOOP)."
14950 PRINT"WITHIN THIS LOOP DON'T[146] USE J[146] AGAIN!"
14965 PRINT"(SO WE USED I[146])"
14971 GOSUB63000
14980 PRINT"[147] 5 FORJ=1TO2"
14981 PRINT" 9 FORI=1TO"W3$
14982 PRINT" 10 PRINT"CHR$(34)" *[157]"CHR$(34)
14983 PRINT" 11 NEXT I _[192][192][192]NOTE"
14984 PRINT" 19 FORI=1TO"W3$
14985 PRINT" 20 PRINT"CHR$(34)" [157][157]*[157]"CHR$(34)
14986 PRINT" 21 NEXT I _[192][192][192]NOTE"
14987 PRINT" 29 FORI=1TO"W1$
14988 PRINT" 30 PRINT"CHR$(34)"*"CHR$(34)
14989 PRINT" 31 NEXT I _[192][192][192]NOTE"
14990 PRINT" 40 NEXT J _[192][192][192]NOTE"
14991 PRINT"IF YOU GET CONFUSED WITH"
14992 PRINT"ALL THOSE NEXT[146]S..."
14995 PRINT"TYPE: NEXT I[146] & NEXT J"
14998 GOSUB63000
15000 PRINT"[147]WANT TO TRY[146]?"
15010 PRINT"I'LL REPEAT THE INSTRUCTIONS."
15115 PRINT"YOU CAN ENTER THE INST'NS BY PUTTING"
15116 PRINT"THE CURSOR AT THE FIRST INSTR'N"
15117 PRINT"THEN REPEATEDLY PRESSING 'RETURN'"
15118 PRINT"SO I'LL THINK YOU[146] TYPED THEM IN."
15120 GOSUB63000
15810 PRINT"[147]";:PRINT"5FORJ=1TO2"
15820 PRINT"9FORI=1TO"W3$
15830 PRINT"10?"CHR$(34)" *[157]"CHR$(34)
15840 PRINT"11NEXT"
15850 PRINT"19FORI=1TO"W3$
15860 PRINT"20?"CHR$(34)" [157][157]*[157]"CHR$(34)
15870 PRINT"21NEXT"
15880 PRINT"29FORI=1TO"W1$
15890 PRINT"30?"CHR$(34)"*"CHR$(34)
15900 PRINT"31NEXT"
15901 PRINT"40NEXT"
15905 PRINT"AFTER ENTERING STATEMENTS 5-40 TYPE:"
15906 PRINT"RUN[146] TO RUN YOUR PROGRAMME."
15910 PRINT"(TYPE @[146] TO CONTINUE TUTOR 1).":SN$="16000":GOTO63300
16000 GOSUB60000:PRINT"[147]DOESN'T WORK DOES IT?"
16001 GOSUB18000
16005 PRINT"[147]NOW SUPPOSE YOU'D LIKE TO SPECIFY"
16010 PRINT"THE SYMBOL USED..INSTEAD OF *."
16120 PRINT"IN THE PROGRAM, REPLACE * IN "
16130 PRINT"STATEMENTS #10,20&30 BY,SAY,S$"
16140 PRINT"THEN INCLUDE THE STATEMENTS:"
16150 PRINT"3?"CHR$(34)"SYMBOL?"CHR$(34)
16160 PRINT"4 INPUT S$"
16170 PRINT"NOW I'LL WAIT FOR YOU TO ENTER THE"
16180 PRINT"SYMBOL(OR STRING)WHICH IS LATER"
16190 PRINT"REFERRED TO AS S$."
16195 GOSUB63000
16200 PRINT"[147]ANOTHER THING.."
16210 PRINT"YOU WILL WANT TO CLEAR THE "
16220 PRINT"SCREEN AT THE START OF THE PROG'M"
16230 PRINT"SO START WITH:"
16240 PRINT"1?"CHR$(34)"[147]"CHR$(34)
16250 PRINT"THIS SAYS: PRINT A CLR"
16260 PRINT" [163][163][163]"
16261 GOSUB63000
16270 PRINT"[147]ALSO, YOU WON'T WANT ME TO COME BACK"
16280 PRINT"WITH MY "CHR$(34)"READY"CHR$(34)
16290 PRINT" [163][163][163][163][163]"
16300 PRINT"SO GIVE ME SOMETHING TO DO,LIKE:"
16310 PRINT"50 FORI=1TO5000:G=0:NEXT"
16320 PRINT"THAT WAY I'LL GO AWAY AND SET G=0"
16330 PRINT"5000 TIMES!"
16335 PRINT"..OR YOU COULD HAVE:"
16336 PRINT"50 GO TO 50"
16337 PRINT"THEN I'D 'LOOP' ON STATEMENT#50 AND"
16338 PRINT"TO STOP ME YOU'D HIT STOP[146]."
16350 GOSUB63000
16370 PRINT"[147]ANOTHER THING,YOU MAY WANT TO CHANGE"
16380 PRINT"YOUR MIND ABOUT THE NO. OF LINES"
16390 PRINT"PRINTED(INSTEAD OF ALWAYS 2)"
16400 PRINT"SO CHANGE: FOR J=1TO 2"
16410 PRINT"TO READ: FOR J=1TO L"
16420 GOSUB63000
16430 PRINT"[147]OF COURSE YOU'LL HAVE TO INPUT"CHR$(34)"L"CHR$(34)
16440 PRINT"SO INSERT THE STATEMENT:"
16450 PRINT"2 INPUT"CHR$(34)"LINES="CHR$(34)";L"
16470 PRINT"I'LL PRINT THE PROMPTING REMARK:"
16480 PRINT"LINES=?"
16481 PRINT"AND WILL WAIT FOR L TO BE TYPED IN."
16490 GOSUB63000
16500 PRINT"[147]THEN YOU MAY WANT TO USE MY CLASSY"
16510 PRINT""CHR$(34)"REVERSE FIELD"CHR$(34)
16520 PRINT" [163][163][163][163][163][163][163][163][163][163][163][163][163]"
16530 PRINT"..THAT'S CTRL-9[146]=RVS ON"
16550 PRINT"SO INSERT THIS PRINT COMMAND"
16560 PRINT"AT THE BEGINNING OF EACH PRINT"
16561 PRINT"SEQUENCE."
16570 GOSUB63000
16580 PRINT"[147]REPLACE:"
16590 PRINT" ?"CHR$(34)" *[157]"CHR$(34);
16600 PRINTSPC(5)" ..BY:"
16610 PRINT" ?"CHR$(34)" *[157]"CHR$(34)
16615 PRINT" ^"
16616 PRINT"THAT'S A 'RVS' COMMAND!"
16620 GOSUB63000
16630 PRINT"[147]I'LL PRINT LOTS OF THINGS IN"
16640 PRINT" REVERSE FIELD"
16650 PRINT" [163][163][163][163][163][163][163][163][163][163][163][163][163]"
16660 PRINT" SO IF YOU WANT IT "CHR$(34)"OFF"CHR$(34)
16670 PRINT" INSERT A PRINT COMMAND:"
16680 PRINT:PRINT"41?"CHR$(34)"[146]"CHR$(34)
16690 PRINT" ^ THAT'S RVS OFF[146]!"
16845 GOSUB63000
16850 PRINT"[147]THEN..IF YOU WANT TO SLOW THINGS DOWN"
16860 PRINT"TRY SUBROUTINES[146]!"
16870 PRINT"INCLUDE A FEW 'GOSUB500' STATEMENTS"
16880 PRINT"AND I'LL GO TO STATEMENT 500 AND OBEY"
16890 PRINT"THE INSTRUCTIONS THERE."
16900 PRINT"SO, PUT INSTRUCTIONS AT 500:"
16910 PRINT"500 FORT=1 TO1000"
16920 PRINT"510 NEXT "
16930 PRINT"520 RETURN "
16940 PRINT"AFTER DOING 'NOTHING' 1000 TIMES I'LL"
16950 PRINT"'RETURN' TO CONTINUE THE MAIN PROGRAM."
16960 GOSUB63000:GOTO19000
18000 PRINT"OF COURSE WE FORGOT TO INCLUDE ALL"
18010 PRINT"THOSE SEMI-COLONS!!!"
18020 PRINT" [163][163][163][163][163][163][163][163][163][163][163] "
18030 PRINT"SO END EACH PRINT STATEMENT"
18040 PRINT"..NAMELY #10,#20 & #30..."
18050 PRINT"WITH A SEMI-COLON! ;"
18060 PRINT"BUT FIRST, LET'S FORGE AHEAD!":GOSUB63000:PRINT"[147]"
18065 MS$="GO!GO!GO!"
18070 GOSUB63100
18075 RETURN
19000 PRINT"[147]";:PRINT"1?"CHR$(34)"[147]"CHR$(34)
19010 PRINT"2INPUT"CHR$(34)"LINES="CHR$(34)";L"
19020 PRINT"3?"CHR$(34)"SYMBOL?"CHR$(34)
19030 PRINT"4INPUTS$"
19810 PRINT"5FORJ=1TOL"
19820 PRINT"9FORI=1TO"W3$":GOSUB500"
19830 PRINT"10?"CHR$(34)" "CHR$(34)"S$"CHR$(34)"[157]"CHR$(34)";"
19840 PRINT"11NEXT"
19850 PRINT"19FORI=1TO"W3$":GOSUB500"
19860 PRINT"20?"CHR$(34)" [157][157]"CHR$(34)"S$"CHR$(34)"[157]"CHR$(34)";"
19870 PRINT"21NEXT"
19880 PRINT"29FORI=1TO"W1$":GOSUB500"
19890 PRINT"30?"CHR$(34)""CHR$(34)"S$;"
19900 PRINT"31NEXT"
19901 PRINT"40NEXT":PRINT"50GOTO1"
19902 PRINT"500FORT=1TO5:NEXT:RETURN"
19910 PRINT"TYPE IT IN & RUN[146] TO RUN IT."
19930 PRINT"THEN TYPE @[146] TO CONTINUE":SN$="20000":GOTO63300
20000 GOSUB60000:PRINT"[147]A FINAL WORD (..OR TWO..):"
20010 PRINT"SOMETIMES YOU RUN A PROGRAM WITH:"
20020 PRINT"RUN 10"
20030 PRINT"SOMETIMES WITH:"
20040 PRINT"GOTO10"
20050 PRINT"WHAT'S THE DIFFERENCE?"
20060 PRINT"WELL..IF YOU TYPE RUN..[146] I FORGET"
20070 PRINT"THE VALUES OF 'X' AND 'Y' AND 'SAM'"
20080 PRINT"AND WILL START FROM SCRATCH."
20090 PRINT"GOTO..[146] AND I'LL REMEMBER THEM!"
20100 GOSUB63000
20110 PRINT"[147]THIS IS HANDY:"
20120 PRINT"STOP[146] A PROGRAM WHILE IT'S RUNNING"
20130 PRINT"AND TYPE:"
20140 PRINT"?X:?Y:?SAM"
20150 PRINT"AND I'LL PRINT THE VALUES OF THESE"
20160 PRINT"VARIABLES AT THE TIME I WAS STOP[146]PED."
20170 PRINT"YOU CAN TYPE CONT[146] TO CONTINUE"
20180 PRINT"WHERE I LEFT OFF...OR.."
20190 PRINT"GOTO100[146] TO CONTINUE AT STATEMENT 100"
20200 PRINT"WITHOUT FORGETTING 'X' AND 'Y' ETC."
20210 PRINT"[184][184][184][184][184][184][184]"
20220 GOSUB63000
20230 PRINT"[147]":MS$="AU REVOIR![146]":GOSUB63100:GOSUB63500:END
59000 PRINT"[147]"
59001 PRINT"DURING THE TUTORIAL YOU MAY WISH"
59002 PRINT"TO RETURN TO AN EARLIER 'PAGE'."
59003 PRINT"JUST HIT THE @-KEY[146], AT ANY TIME,"
59004 PRINT"AND THE TUTORIAL WILL BACK UP"
59005 PRINT"A PAGE OR TWO."
59006 PRINT"ALSO, YOU HAVE AN OPPORTUNITY TO"
59007 PRINT"COMPOSE YOUR OWN PROGRAMS."
59008 PRINT"WHEN YOU WISH TO CONTINUE WITH"
59009 PRINT"THE TUTORIAL, HIT THE @-KEY[146]!":GOSUB63000
59010 MS$="@[146]_REMEMBER":GOSUB63100
59020 GOSUB63000:RETURN
60000 POKE204,1:REM INITIALIZE
60001 BT$="":FORI=1TO24:BT$=BT$+"":NEXT
60002 PT$="[176][192][192][192][192][192][192][192][192][192][192][174][157][157][157][157][157][157][157][157][157][157][157][157][221][221][157][157][157][157][157][157][157][157][157][157][157][157][173][178][192][192][192][192][192][192][192][192][178][189]"
60003 PT$=PT$+"[157][157][157][157][157][157][157][157][157][157][157][157][157][206][163][163][163][163][163][163][163][163][163][163][163][163][205][157][157][157][157][157][157][157][157][157][157][157][157][157][157][165]============[167]"
60004 PT$=PT$+"[157][157][157][157][157][157][157][157][157][157][157][157][157][157][208][207][163][163][163][163][163][163][163][163][163][163][208][207][145][145][145][145][157][157][157][157][157][157][157][157][157][157][157][157]"
60005 PT$=BT$+"[145][145][145][145][145][145]"+PT$+"[144]"
60007 ML$=""
60008 WD=40:CRT=1024:PRINTCHR$(142)
60009 W2=WD/2:W3=WD-1:W1$=MID$(STR$(WD),2):
60010 W2$=MID$(STR$(W2),2):W3$=MID$(STR$(W3),2)
60020 PRINT"[147]":POKE53281,15:POKE53280,12:PRINT"[144]"
60998 IFPEEK(789)<>7*16+15THENSYS(7*4096+15*256+12*16+3)
60999 RETURN
61000 REM*NEW WORKSPACE
61001 M=7*4096+15*256+15*16
61002 RESTORE
61003 FORI=MTOM+15:READK:POKEI,K:NEXT
61004 DATA 1,96,3,96,3,96,3,96
61005 DATA 144,127,0,0,144,127,0,0
61006 M=6*4096:FORI=0TO2:POKEM+I,0:NEXT
61007 RETURN
63000 PRINT"HIT RETURN[146] TO CONTINUE";
63001 GETA$:IFA$<>""THEN63001
63002 GETA$:IFA$=""THEN63002
63003 RETURN
63100 FORT=1TO5:PRINTPT$MS$;
63101 PRINTPT$" ";
63102 PRINTPT$MS$;:NEXT
63103 PRINT:RETURN
63200 POKE56,96:POKE52,96:POKE55,0:POKE51,0:GOSUB61000
63201 WD=40:PRINTCHR$(142)
63202 M=7*4096+15*256+9*16
63203 FORI=MTOM+91:READK:POKEI,K:NEXT
63204 DATA165,203,201,46,208,83,32,195,127,165,44,201,8,240,3,32,177,127,32
63205 DATA142,166,165,44,201,8,240,3,76,128,164,76,174,167,162,16,189,239
63206 DATA127,72,181,42,157,239,127,104,149,42,202,208,241,96,120,173,238,127
63207 DATA77,20,3,141,20,3,173,239,127,77,21,3,141,21,3,88,96,173,20,3,73
63208 DATA144,141,238,127,173,21,3,73,127,141,239,127,96,76,255,255
63216 POKEM+90,PEEK(788):POKEM+91,PEEK(789)
63220 KEY=7*4096+15*256+13*16+8
63221 SYS(KEY):REM KEY FOR IRQ SWAP
63299 RETURN
63300 REM*SWITCH TO NEW WORKSPACE
63301 GOSUB63600:REM RUN NUMBER
63302 GOSUB61000:REM NEW THE WORKSPACE
63303 GOTO63403
63400 REM*SWITCH TO OLD WORKSPACE
63401 GOSUB63600
63403 SWTCH=7*4096+15*256+9*16+15
63404 SYS(SWTCH):REM SWAP POINTERS
63405 POKE204,2:END
63500 REM*RESTORE PET
63501 SN$="100":GOSUB63600
63502 M=7*4096+15*256+12*16+3:IFPEEK(789)=7*16+15THENSYSM
63503 RETURN
63600 REM*INSERT RUN NUMBER
63601 M=2059:SN$="00000"+SN$
63602 FORI=1TO5:POKEM-I,ASC(RIGHT$(SN$,I)):NEXT:RETURN